const fs = require('fs')
const path = require('path')

// 目录创建之同步实现
/**
 * 1: 将来调用时需要接受类似于 a/b/c 这样的路径 它们之间采用 / 去连接
 * 2: 利用 / 分割符 将路径进行拆分, 将每一项放入一个数组中进行管理 ['a', 'b', 'c']
 * 3: 对上述的数组进行遍历, 我们需要拿到每一项, 然后于前一项进行拼接 /
 * 4: 判断一下当前对拼接之后的路径是否有可操作的权限, 如果有则证明存在, 否则的话就需要执行创建
 */

function makeDirSync(dirPath) {
  let items = dirPath.split(path.sep)
  for (let i = 1; i <= items.length; i++) {
    let dir = items.slice(0, i).join(path.sep)
    try {
      fs.accessSync(dir)
    } catch (error) {
      fs.mkdirSync(dir)
    }
  }
}

makeDirSync('aa\\bb\\cc') // 执行完成后就可以生成目录了
